﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;
using FacturacionII.Modelo;
namespace FacturacionII.Clases
{
    class clsZonas
    {
        facturacionEntities objFacturacion;
        /// <summary>
        /// Carga un arraylist con los datos de todos los departamentos
        /// ordenados alfabeticamente
        /// </summary>
        /// <returns>ArrayList de Departamentos</returns>
        public ArrayList CargarComboBoxDepartamentos()
        {
            objFacturacion = new facturacionEntities();
            ArrayList lista = new ArrayList();
            var departamentos = from d in objFacturacion.departamento
                                orderby d.departamento1
                                select new { CODIGO = d.id, DEPARTAMENTO = d.departamento1 };
            foreach (var datos in departamentos)
            {
                lista.Add(datos);
            }

            return lista;
        }

        /// <summary>
        /// Carga un arraylist con los datos de todos las provincias
        /// ordenados alfabeticamente.
        /// Combobox recargables
        /// </summary>
        /// <param name="idDepartamento">Recarga el combobox en base al idDepartamento</param>
        /// <returns>ArrayList de Provincias</returns>
        public ArrayList CargarComboBoxProvincia(int idDepartamento)
        {
            objFacturacion = new facturacionEntities();
            ArrayList lista = new ArrayList();
            var provincias = from p in objFacturacion.provincia
                             where p.id_departamento == idDepartamento
                             orderby p.provincia1
                             select new { CODIGO = p.id, PROVINCIA = p.provincia1 };
            foreach (var datos in provincias)
            {
                lista.Add(datos);
            }

            return lista;
        }

        /// <summary>
        /// Carga un arraylist con los datos de todas las provincias
        /// ordenados alfabeticamente.
        /// </summary>
        /// <returns>ArrayList Provincias</returns>
        public ArrayList CargarComboBoxProvincia()
        {
            objFacturacion = new facturacionEntities();
            ArrayList lista = new ArrayList();
            var provincias = from p in objFacturacion.provincia
                             orderby p.provincia1
                             select new { CODIGO = p.id, PROVINCIA = p.provincia1 };
            foreach (var datos in provincias)
            {
                lista.Add(datos);
            }

            return lista;
        }

        /// <summary>
        /// Carga un arraylist con los datos de todos los distritos
        /// ordenados alfabeticamente.
        /// Combobox recargables
        /// </summary>
        /// <param name="idProvincia">Recarga el combobox en base al idProvincia</param>
        /// <returns>Un ArrayList de Distritos</returns>
        public ArrayList CargarComboBoxDistritos(int idProvincia)
        {
            objFacturacion = new facturacionEntities();
            ArrayList lista = new ArrayList();
            var distritos = from d in objFacturacion.distrito
                            where d.id_provincia == idProvincia
                            orderby d.distrito1
                            select new { CODIGO = d.id, DISTRITO = d.distrito1};
            foreach (var datos in distritos)
            {
                lista.Add(datos);
            }

            return lista;
        }

        /// <summary>
        /// Carga un arraylist con los datos de todas las provincias
        /// ordenados alfabeticamente.
        /// </summary>
        /// <returns>ArrayList de Distritos</returns>
        public ArrayList CargarComboBoxDistritos()
        {
            objFacturacion = new facturacionEntities();
            ArrayList lista = new ArrayList();
            var distritos = from d in objFacturacion.distrito
                            orderby d.distrito1
                            select new { CODIGO = d.id, DISTRITO = d.distrito1 };
            foreach (var datos in distritos)
            {
                lista.Add(datos);
            }

            return lista;
        }
    }
}
